查看原文
其他

Android 11 Beta 2 和平台稳定性里程碑

Android 谷歌开发者 2020-09-20
作者 / Dave Burke, VP of Engineering

几周前,我们发布了 Android 11 的第一个 Beta 版,该版本强调了三个主题: 以人为本、灵活控制以及隐私安全。正如我们在发布 Beta 1 时强调的那样,我们正在使 Android 更加以人为本、更善于沟通,帮助用户控制他们的智能设备,让他们对敏感权限具有更多掌控权。开发者可以利用聊天 (Conversations)、Bubbles、设备控制 (Device Controls) 和媒体控制 (Media Controls) 等 API 将这些体验整合到自己的应用中。

  • Android 11 Beta 版
    https://developer.android.google.cn/android11
  • 聊天 (Conversations)
    https://developer.android.google.cn/preview/features/conversations
  • Bubbles
    https://developer.android.google.cn/guide/topics/ui/bubbles
  • 设备控制 (Device Controls)
    https://developer.android.google.cn/preview/features/device-control
  • 媒体控制 (Media Controls)
    https://developer.android.google.cn/preview/features/media-controls


Android 11 的第二个 Beta 版现已推出,供您试用。这也意味着我们已经抵达平台稳定性里程碑,即 Android 11 的 API 和行为已最后敲定。对于开发者来说,是时候进行最终兼容性更新,确保在 Android 11 正式版 (将于第三季度末发布) 之前完成发布。


您可以在此处注册进行 OTA 更新,在 Pixel 2、3、3a 和 4 系列设备上立即获得 Beta 2,也可以手动下载系统映像。如果您先前安装了 Beta 1,将自动获得 OTA 更新。感谢大家一直以来提供的反馈,请继续与我们分享您的使用感想!


  • 参与 Android Beta 测试
    https://www.google.com/android/beta
  • Google Pixel 映像下载
    https://developer.android.google.cn/preview/download
  • 提交反馈
    https://developer.android.google.cn/preview/feedback.html


平台稳定性


Beta 2 将 Android 11 推进至 "平台稳定性" 里程碑,这是我们今年根据大家的反馈专为开发者新增的一个版本里程碑。


  • "平台稳定性" 里程碑
    https://developer.android.google.cn/preview/overview#platform_stability

平台稳定性里程碑意味着现在所有面向应用的接口和行为都在 Android 11 中达到最终状态。这不仅包括最终 SDK 和 NDK API,还包括可能对应用造成影响的最终版系统行为和非 SDK 限制接口。因此从 Beta 2 起,您可以确信平台不会再出现更改,从而放心地发布兼容性更新。在此处详细了解发布时间表。
  • Android 11 发布时间表
    https://developer.android.google.cn/preview/overview#timeline


由于平台现已稳定,我们鼓励所有应用和游戏开发者开始进行最终兼容性测试并在最终版本之前发布更新。


对于所有 SDK、库、工具和游戏引擎开发者而言,更为重要的是立即开始测试并尽快发布兼容更新,在收到更新之前,您的下游应用和游戏开发者可能无法进行兼容性更新操作。在您发布兼容更新后,请告知您的开发者!


  • 平台稳定性和 Android 发布时间表
    https://youtu.be/OzlhNZEAchQ


应用兼容性为何至关重要


对于 Android 而言,"应用兼容性" 意味着您的应用可在特定版本 (通常是最新版本) 的平台上正确运行。您可以立即在运行 Android 11 的设备或模拟器上安装您已经发布的应用,检查其兼容性。只需测试所有用户流程和功能,如果应用运行时的界面和行为都一切正常,即说明应用兼容!


听起来很简单,但有时要做很多工作。在每一个版本中,我们都会做一些必不可少的变更来改善隐私和安全性,以及提升操作系统的整体用户体验。有时,它们可能影响您的应用,因此重要的一点是查看行为变更并进行针对性的测试,然后向用户发布兼容更新。这是确保应用品质的一个基本且重要的操作。


  • 行为变更
    https://developer.android.google.cn/preview/behavior-changes-all

当用户更新到最新版本的 Android 后——无论他们是购买新设备还是在现有设备上安装更新——应用兼容性就会开始发挥作用。用户们会积极探索最新版本的 Android,并通过喜欢的应用体验全新的版本。如果应用无法正常工作,这对用户以及我们所有人来说都是重大的问题。

因此,在您准备更改应用的目标平台时,虽然有大量的新 API 和功能可供您使用,也有更多变更需要考虑,但您的首要工作是测试当前应用并发布兼容更新。


  • 新 API 和功能
    https://developer.android.google.cn/preview/features

在 Android 11 达到 Android 开源项目 (Android Open Source Project, AOSP) 的最终版本后,Pixel 及其他设备的更新将会开始,预计为第三季度末。现在,合作伙伴的多款设备也已处于公开预览状态,以支持您的兼容性测试。

  • Android 开源项目 (AOSP)
    https://source.android.com/


在 Android 11 中简化应用兼容性工作


在每个版本中,我们都致力于减少您准备应用时需要完成的工作。在 Android 11 中,我们增加了新的流程、开发者工具和版本里程碑,以最大程度减少平台更新带来的影响并使应用更容易保持兼容。
  • 最大限度地降低行为变更影响: 我们的目标始终如一,即在您将应用的 targetSdkVersion 设置为 Android 11 之前,尽可能将这些变更设置为可选项,最大程度减少平台变更对应用带来的影响。如果您通过 Google Play 分发应用,则将有一年以上的时间逐渐适用这些变更。

  • 更轻松的测试和调试: 为了帮助您测试兼容性,我们将许多非兼容性变更设置为 "可关闭"。这意味着,您可以通过开发者选项或 adb 强制启用或禁用每一项更改。这样就无需为了一些基本测试而更改 targetSdkVersion 或重新编译您的应用。我们也简化了 Android Studio 自动化测试的流程。访问官方文档查看详细信息。


  • targetSdkVersion
    https://developer.android.google.cn/distribute/best-practices/develop/target-sdk
  • 测试应用与 Android 11 的兼容性
    https://developer.android.google.cn/preview/test-changes

△ 开发者选项中的应用兼容性开关
  • 对非 SDK 接口的限制: 为了帮助开发者逐步弃用非 SDK API,我们不断努力,更新了受限制的非 SDK 接口列表。一如既往,欢迎您提出反馈,并提交公开 API 替代接口的开发需求。
  • 动态资源加载器: 在开发者们移除非 SDK 接口调用的同时,我们听到了来自卓盟科技等开发者的一个需求: 提供一个公开 API 来在运行时动态加载资源和素材。现在,我们在 Android 11 中添加了 Resource Loader 框架,感谢向我们提出这些需求的开发者!
  • 平台稳定性里程碑: 如前文所述,这是我们在版本发布流程中新增的一个里程碑,它为开发者提供了一个清晰的最终变更日期。这不仅包括最终 SDK/NDK API,还包括可能影响应用的最终内部 API 和系统行为。


  • 受限制的非 SDK 接口列表
    https://developer.android.google.cn/preview/non-sdk-11
  • 提交公开 API 替代接口的开发需求
    https://developer.android.google.cn/distribute/best-practices/develop/restrictions-non-sdk-interfaces#feature-request
  • Resource Loader 框架
    https://developer.android.google.cn/reference/android/content/res/loader/package-summary.html


让您的应用为 Android 11 做好准备!


现在,Android 11 已经稳定,请尽快使您的应用与之兼容。操作方法如下。

要测试您当前的应用,首先了解会影响 Android 11 上所有应用的行为变更,查看应用在哪些方面会受影响。


  • 行为变更: 所有应用
    https://developer.android.google.cn/preview/behavior-changes-all


下面是首先需要关注的变更 (无论您应用的 targetSdkVersion 是多少): 
  • 单次权限 - 现在,用户可以为位置信息、设备麦克风和摄像头授予单次使用权限。详细信息请访问官方文档:

    https://developer.android.google.cn/preview/privacy/permissions#one-time

  • 外部存储访问权限 - 应用无法再访问外部存储空间中其他应用的文件。详细信息请访问官方文档:

    https://developer.android.google.cn/preview/privacy/storage#other-apps-private-dirs

  • Scudo Hardened Allocator - 现在它是应用内原生代码的堆内存分配器。详细信息请访问官方文档:

    https://developer.android.google.cn/preview/behavior-changes-all#scudo

  • 文件描述符排错程序 - 此功能现在默认启用,以检测应用原生代码的文件描述符处理错误。详细信息请访问官方文档:

    https://developer.android.google.cn/preview/behavior-changes-all#fdsan


记得在应用中测试库和 SDK 的兼容性。如果发现问题,请尝试更新该 SDK 至最新版本,或联系开发者寻求帮助。

接着,在您发布当前应用的兼容版本后,可以开始执行更新应用 targetSdkVersion流程。检查会影响 Android 11 应用的行为变更并尝试使用兼容性框架来帮助查明影响。


  • 符合 Google Play 的目标 API 级别要求
    https://developer.android.google.cn/distribute/best-practices/develop/target-sdk
  • 更新应用目标并使用新 API 进行构建
    https://developer.android.google.cn/preview/migration#setup_sdk
  • 行为变更: 以 Android 11 为目标平台的应用
    https://developer.android.google.cn/preview/behavior-changes-11
  • 测试应用与 Android 11 的兼容性
    https://developer.android.google.cn/preview/test-changes


下面是一些要重点测试的变更 (仅适用于 targetSdkVersion 30+):

  • 分区存储 - 应用读取和写入文件时的新存储空间限制、新行为和新 API。详细信息请访问官方文档:

    https://developer.android.google.cn/preview/privacy/storage#scoped-storage

  • 后台位置 - 应用请求后台位置的方式以及用户授予权限的方式发生改变。详细信息请访问官方文档:

    https://developer.android.google.cn/preview/privacy/location#request-background-location-separately
  • 软件包可见性 - 应用查询其他已安装应用以及与之互动的方式发生改变。详细信息请访问官方文档:
    https://developer.android.google.cn/preview/privacy/package-visibility
  • 压缩的资源文件 - 如果应用包含压缩的 resources.arsc 文件,或者文件未在 4 字节边界对齐,则无法安装或更新应用。详细信息请访问官方文档:
    https://developer.android.google.cn/preview/behavior-changes-11#compressed-resource-file
  • APK 签名方案 v2 - 现在必须使用 APK 签名方案 v2 或更高版本为应用签名。详细信息请访问官方文档:
    https://developer.android.google.cn/preview/behavior-changes-11#minimum-signature-scheme
  • 堆指针标记 - 对于 64 位进程,原生堆分配在指针的最高位字节具有一个标记集,应用不应修改该标记集。详细信息请访问官方文档:
    https://developer.android.google.cn/preview/behavior-changes-11#heap-pointer-tagging


在测试过程中,留意应用中使用的受限非 SDK 接口并将其替换为等效的公开 SDK 接口。请访问官方文档了解受限的 API 接口:
  • https://developer.android.google.cn/preview/non-sdk-11


探索新功能和 API


准备就绪后,请深入研究 Android 11 并了解您可以构建的新体验。我们在发布 Android 11 Beta 1 的时候详细介绍了这些新功能,您还可以访问 Beta 版发布页面,观看 Android 团队成员们就自己所负责领域的最新变化发表的演讲


  • Android 11 Beta 版
    https://developer.android.google.cn/android11
  • Android 11 演讲视频
    https://space.bilibili.com/64169458/channel/detail?cid=133709

Android Studio 中也添加了适用于 Android 11 的新功能,以改善您的生产效率和工作流程,例如 ADB Incremental (ADB 增量更新),它可以更快地安装较大的 APK,另外还在平台 API 上加入了更多的可空性注解。您可以下载最新的 Android Studio Beta 或 Canary 版尝试一下。请在官方文档查看如何针对 Android 11 配置 Android Studio。


  • ADB Incremental (ADB 增量更新)
    https://developer.android.google.cn/preview/features#incremental
  • 下载 Android Studio Beta 或 Canary 版
    https://developer.android.google.cn/studio/preview
  • 官方文档: 设置 Android 11 SDK
    https://developer.android.google.cn/preview/setup-sdk


有关 Android 11 功能和 API 的完整详细信息,请访问 Android 11 开发者网站。


  • Android 11 开发者网站
    https://developer.android.google.cn/11


如何获取 Beta 2?


非常简单!可以在官网注册,为 Pixel 2、3、3a 和 4 系列设备获取 Android 11 Beta OTA 更新。或者使用 Android Flash Tool 尝试简单的即时更新,我们还提供了可下载的系统映像。如果您没有 Pixel 设备,可以使用 Android Studio 中的 Android Emulator 或尝试 GSI 映像,在支持的 Treble 兼容设备上运行 Android 11。


  • 注册参与 Android Beta 测试
    https://www.google.com/android/beta
  • Android Flash Tool
    https://flash.android.com/welcome?continue=%2Fpreview%2Fbeta2
  • Google Pixel 映像下载
    https://developer.android.google.cn/preview/download


您的反馈一如既往的重要,因此,请与我们分享您的想法。您可以使用我们的问题反馈表单提交平台问题 (包括隐私和行为变更)、应用兼容性问题以及第三方 SDK 问题。感谢大家一直以来和我们分享的有效反馈!


  • 提交反馈
    https://developer.android.google.cn/preview/feedback.html
  • 提交平台问题
    https://issuetracker.google.com/issues/new?component=190602&template=1226573
  • 提交应用兼容性问题
    https://issuetracker.google.com/issues/new?component=190602&template=1227376
  • 提交第三方 SDK 问题
    https://issuetracker.google.com/issues/new?component=190602&template=1227583


Android 11 兼容性


在本周发布的 11 Weeks of Android 文章中,我们重点介绍了 Android 11 的兼容性,由于平台已到达稳定版本,本主题对所有开发者都很重要。


  • 11 Weeks of Android
    https://developer.android.google.cn/11weeksofandroid

我们将在微信和 Bilibili 上持续分享资源来帮助您完成兼容性测试,请保持关注以便第一时间获取这方面的更新!


  • Bilibili - Android 11
    https://space.bilibili.com/64169458/channel/detail?cid=133709



推荐阅读






 点击屏末 | 阅读原文 | 前往 Android 11 Beta 版官方网站



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存